package br.com.javajsf.controle;

import java.util.HashMap;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;


@ManagedBean(name = "autenticador")
@RequestScoped
public class AutenticadorBean {

	private static Map<String, String> mapa = new HashMap<String, String>();
	
	private String usuario;
	private String senha;
	
	static{
		mapa.put("reginaldo","ocrente");
		mapa.put("rafael","pjsq20");
	}
	
	public String efetuarLogin(){	
		FacesContext fc = FacesContext.getCurrentInstance();
		System.out.println("Logando...");
		if (AutenticadorBean.mapa.containsKey(this.usuario) && AutenticadorBean.mapa.get(this.usuario).equals(this.senha)) {
			
			ExternalContext ec = fc.getExternalContext();
			HttpSession session = (HttpSession) ec.getSession(false);
			session.setAttribute("usuario", this.usuario);
			String id = session.getId();
			
			System.out.println("Login OK! - ID da Sessao: "+id);
			return "index.jsf?faces-redirect=true";
		}else{
			System.out.println("Login falhou .....");
			return "login.jsf?faces-redirect=true";
		}
	}
	
	public String efetuaLogoff() {
		 FacesContext fc = FacesContext.getCurrentInstance();
		 ExternalContext ec = fc.getExternalContext();
		 HttpSession session = (HttpSession) ec.getSession(false);
		 session.removeAttribute("usuario");
		 //session.invalidate();// Invalida a sessao trocando ela de nome
		 return "login.jsf?faces-redirect=true";
	 }
	
	//Getters and Setters
	public String getUsuario() {
		return usuario;
	}

	public String getSenha() {
		return senha;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
}
